!!!###!!!title=170- 如何为柱状图每根柱子设置不同颜色?——VisActor/VChart FAQ 文档!!!###!!!!!!###!!!description=---title: 50. 如何为柱状图每根柱子设置不同颜色?</br>--- !!!###!!!

问题标题

如何为柱状图每根柱子设置不同颜色

问题描述

柱状图需要给每个柱子设置不一样的颜色

解决方案

不同图表库的解决方案不一样,这本质上是将不同的数据映射到图形的颜色, VChart 提供 seriesField 配置,用户可以指定划分系列的分组字段, 从而对图形进行分组, 分组后的图形, 同组的内容会使用相同的颜色绘制, 不同组的内容, 会使用不同的颜色绘制。
步骤一: 用户需要在数据准备好需要分组的信息, 通常是给每一项数据增加一个特定的属性
步骤二: 设置seriesField

代码示例

import { StrictMode, useEffect } from "react";
import { createRoot } from "react-dom/client";

const rootElement = document.getElementById("root");
const root = createRoot(rootElement);

import VChart from "@visactor/vchart";

const App = () => {
  useEffect(() => {
    const spec = {
      type: "bar",
      data: [
        {
          id: "barData",
          values: [
            { month: "Monday", sales: 22, index: 0 },
            { month: "Tuesday", sales: 13, index: 1 },
            { month: "Wednesday", sales: 25, index: 2 },
            { month: "Thursday", sales: 29, index: 3 },
            { month: "Friday", sales: 38, index: 4 },
          ],
        },
      ],
      seriesField: "index",
      xField: "month",
      yField: "sales",
    };
    const vchart = new VChart(spec, { dom: "chart" });
    vchart.renderSync();

    return () => {
      vchart.release();
    };
  }, []);

  return <div id="chart"></div>;
};

root.render(
  <StrictMode>
    <App />
  </StrictMode>
);
</br>

结果展示

Online Demo: https://codesandbox.io/p/sandbox/vchart-bar-seriesfield-rqxv2d?file=%2Fsrc%2Findex.js%3A1%2C1-45%2C1

相关文档

SeriesField API: https://visactor.io/vchart/option/barChart#seriesField
Github: https://github.com/VisActor/VChart